package com.ubo.uspeed;

import java.util.ArrayList;
import java.util.List;

import com.ubo.java.model.EModifier;
import com.ubo.java.model.EVisibility;

public class Classifier extends AAssociationElement {
	/**
	 * Type du Classifier
	 */
	protected ETypeClassifier mType;
	/**
	 * Liste d'attribut
	 */
	protected List<UAttribute> listA;
	/**
	 * Liste de méthode
	 */
	protected List<Methode> listM;
	/**
	 * Visibilité du Classifier
	 */
	protected EVisibility mVis;

	/**
	 * Modifier du Classifier
	 */
	protected EModifier mMod;

	/**
	 * @param name
	 * @param vis
	 */
	public Classifier(String name, EVisibility vis) {
		this.mName = name;
		this.mVis = vis;
		listA = new ArrayList<UAttribute>();
		listM = new ArrayList<Methode>();
	}

	/**
	 * 
	 * @return
	 */
	public ETypeClassifier getmType() {
		return mType;
	}

	/**
	 * 
	 * @param mType
	 */
	public void setmType(ETypeClassifier mType) {
		this.mType = mType;
	}

	/**
	 * 
	 * @return
	 */
	public List<UAttribute> getListA() {
		return listA;
	}

	/**
	 * 
	 * @param listA
	 */
	public void setListA(ArrayList<UAttribute> listA) {
		this.listA = listA;
	}

	/**
	 * 
	 * @return
	 */
	public List<Methode> getListM() {
		return listM;
	}

	/**
	 * 
	 * @param listM
	 */
	public void setListM(ArrayList<Methode> listM) {
		this.listM = listM;
	}

	/**
	 * 
	 * @param v
	 */
	public void accept(Visiteur v) {
		v.visitClassifier(this);
	}

	/**
	 * 
	 * @return
	 */
	public EVisibility getmVis() {
		return mVis;
	}

	/**
	 * 
	 * @param mVis
	 */
	public void setmVis(EVisibility mVis) {
		this.mVis = mVis;
	}

	/**
	 * 
	 * @return
	 */
	public EModifier getmMod() {
		return mMod;
	}

	/**
	 * 
	 * @param mMod
	 */
	public void setmMod(EModifier mMod) {
		this.mMod = mMod;
	}
}
